Advanced Project Structure - Modules

It is not possible to have multiple XCode projects in one "src/xcode" folder, however module builds are allowed. In this case the project structure has to be the following:

 |-- project-root
      |-- pom.xml                               The project pom xml.
      |
      |-- <MavenModule1Root>
      |  |-- src
      |     |-- xcode                           The "xcode" folder contains the whole XCode project. Copy your project there.
      |        |-- MyNewProject
      |           |-- <sources>, ...
      |        |-- MyNewProject.xcodeproj
      |        |-- MyNewProjectTests
      |           |-- <sources>, ...
      |  |-- pom.xml                            The module pom.
      |
      |-- <MavenModule2Root>
      |  |-- src
      |     |-- xcode                           The "xcode" folder contains the whole XCode project. Copy your project there.
      |        |-- MyNewProject2
      |           |-- <sources>, ...
      |        |-- MyNewProject2.xcodeproj
      |        |-- MyNewProjectTests2
      |           |-- <sources>, ...
      |  |-- pom.xml                            The module pom.
      |
      |.....

The project pom then must contain the references to its module projects.

<modules>
  <module>XCodeProject1Name/pom.xml</module>
  <module>XCodeProject2Name/pom.xml</module>
  ......
</modules>

Limitations

In case of a module containing applications, the module pom itself must not be deployed. To skip the deployment of the module pom, the property maven.deploy.skip must be set to true :

...
<properties>
  <maven.deploy.skip>true</maven.deploy.skip>
</properties>
...

Since the module pom is not deployed, it is not possible to use the module pom as parent pom. It is not possible to use a parent pom file that is part of the module build.